import request from '@/utils/request'

/**
 * 用户登录
 * @param {Object} data - 登录数据 { userName, password }
 * @returns Promise 包含 JWT token
 */
export function login(data) {
  return request({
    url: '/sys/user/login',
    method: 'post',
    data
  })
}

/**
 * 获取用户信息
 * @param {String} token - JWT token
 * @returns Promise 包含用户信息对象
 */
export function getInfo(token) {
  return request({
    url: '/sys/user/info',
    method: 'get',
    params: { token }
  })
}

/**
 * 用户登出
 * @returns Promise
 */
export function logout() {
  return request({
    url: '/sys/user/logout',
    method: 'post'
  })
}

/**
 * 用户注册
 * @param {Object} data - 注册数据
 *        { userName, password, ...其他用户字段 }
 * @returns Promise
 */
export function register(data) {
  return request({
    url: '/sys/user/register',
    method: 'post',
    data
  })
}

/**
 * 根据用户名查询用户
 * @param {String} userName - 用户名
 * @returns Promise 包含用户信息对象
 */
export function getUserByName(userName) {
  return request({
    url: '/sys/user/selectUserByName',
    method: 'get',
    params: { userName }
  })
}

/**
 * 根据用户ID查询用户
 * @param {Number|String} userId - 用户ID
 * @returns Promise 包含用户信息对象
 */
export function getUserById(userId) {
  return request({
    url: '/sys/user/selectUserById',
    method: 'get',
    params: { userId }
  })
}
